1. Field of the Invention
Embodiments of the present invention relate generally to a method and apparatus for monitoring packet networks and, more specifically, to a more precise way of time stamping packets that are used in measuring transit delay and transit delay variations between two points in a packet network
2. Description of the Related Art
Time and frequency alignment are essential to certain types of systems operating in a conventional communications network. For example, time alignment is required by instrumentation systems gathering data at specific time intervals or operating machinery according to specific timing. Frequency alignment is required in time-division multiplexing (TDM) and media streaming systems that require fixed video or audio sample rates across multiple clients. Typically, a system that is properly time-aligned is also frequency aligned. However, frequency alignment typically does not imply time alignment.
One approach known in the art that provides both time and frequency alignment involves computing an aligned time signal based on global positioning system (GPS) satellite timing signals, which are each held in precise alignment with a global clock reference. Using GPS signals to achieve time or frequency alignment is generally quite expensive and requires a client system to be able to receive satellite time signals from GPS satellites. In general, a more cost effective approach to time alignment is to transmit timing alignment information via a protocol that is operable within a given communications network.
In conventional TDM networks a physical layer methods implement frequency alignment throughout the network, starting with a designated master clock system. The designated master clock system delivers (frequency) timing information via bit-timing (or symbol-timing) information associated with downstream physical communication links. In normal operation each system coupled to the master clock system replicates the master clock timing information to downstream systems by replicating physical layer timing from the master clock system to each downstream system. Each system within the TDM network receives (frequency) timing information and aligns local (frequency) timing to an upstream clock reference, thereby enabling every system within the TDM network to achieve frequency alignment.
While frequency alignment within conventional TDM networks is relatively straightforward, packet-switched networks, such as networks based on the popular Ethernet industry standards, present time and frequency alignment challenges because packet-switched networks are not conventionally designed to provide precise delivery time for data or precise timing at any lower protocol levels. A key difference is that the switching and multiplexing functions are not as deterministic as circuit switching and TDM, but have a statistical aspect as well. The statistical nature of switching and multiplexing adds a different notion of quality of service. Whereas error performance is always important, the notions of delay variation and available bandwidth now come into play. For a given packet flow, such as for a circuit-emulated service, a certain minimum “bit rate” may be specified along with a measure of how much more bandwidth can be made available, depending on the level of network congestion. A Service Level Agreement (SLA) between the network provider and an end-user would specify, among other items, the guaranteed (minimum) bit rate (or equivalent) as well as the upper limit to packet delay variation and other factors that could be in jeopardy in situations of network congestion.
Furthermore, packet-switched networks typically involve multiple nodes that may store and forward data packets, potentially introducing significant transit delay variation between any two points. To generally overcome certain time alignment challenges inherent in packet-switched networks, certain time alignment protocols based on the industry standard internet protocol (IP) have been developed and deployed. One IP-based time alignment protocol is known in the art as the Network Time Protocol (NTP). NTP is used for aligning time between a master time reference and one or more clients. Precision Time Protocol (PTP) is a second IP-based time alignment protocol for aligning one or more client devices to a master time reference. PTP is defined in detail within the IEEE 1588® standard.
Lightly loaded packet-switched networks typically present relatively low transit delay variation, allowing IP-based alignment protocols such as NTP and PTP to easily achieve excellent accuracy relative to each protocol's specification. For example, in a lightly loaded gigabit Ethernet-based network, PTP can theoretically provide alignment of better than one hundred nanoseconds. However, conventional networks typically have a wide range of bandwidth loading conditions, which leads to large transit delay variations. Large transit delay variations can potentially cause client devices to fall out of alignment and fail. A network probe may be used to monitor network conditions with respect to a specified protocol, such as NTP or PTP, and to generate alerts when prevailing network conditions do not support proper operation of the specified protocol. With an appropriate alert, network operators can potentially take action to mitigate or avoid a failure. A network probe may also be used to generate traffic simulating a large population of time alignment client devices for the purpose of testing a given packet-switched network's ability to perform under load prior to operating the network with normal production traffic.
A conventional network probe comprises a computer system configured to communicate and interact with a time reference server and act as one or more client devices. In PTP, the time reference server is called a grandmaster. When a computer system configured to operate as a network probe interacts with a grandmaster, each incoming packet generates an interrupt within the computer system. An operating system controlling the computer system schedules an interrupt handler to process packets in response to the interrupt. When a PTP packet is received, the interrupt handler is typically configured to act as a PTP client device. The process of scheduling and executing an interrupt may take hundreds of microseconds on a typical computer system with relatively efficient interrupt handling. As a result, the potential measurement error associated with time-stamping an incoming PTP packet may be orders of magnitude larger than the resolution needed for the desired measurement. Time stamps for out-bound packets will include similarly large errors. Furthermore, the computer system may not be able to accurately generate a useful volume of PTP traffic to properly simulate a set of client devices.